package com.ztgf.commodity.models.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ztgf.common.annotations.CustomerBigDecimalSerialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * author: chenyu.wang
 * date: 2020-08-03 09:36
 * Description: 商城商品详情页VO
 */
@Data
public class CommodityDetailsPageVO implements Serializable {

    @ApiModelProperty(value = "商品id")
    private Long id;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "是否上架,0未上架,1已上架")
    private Integer isPublish;

    @ApiModelProperty(value = "商品描述")
    private String goodsDescription;

    @ApiModelProperty(value = "商品主图")
    private String logoUrl;

    @ApiModelProperty(value = "商品logo图片 图片集合，逗号隔开")
    private String logoUrls;

    @ApiModelProperty(value = "商品视频地址 视频集合，逗号隔开")
    private String videoUrls;

    @ApiModelProperty(value = "支付方式")
    private Integer payType;

    @ApiModelProperty(value = "发货时间")
    private Integer sendDays;

    @ApiModelProperty(value = "发货区域id")
    private Long sendAreaId;

    @ApiModelProperty(value = "可售区域codes,用逗号隔开")
    private String availableArea;

    @ApiModelProperty(value = "商品详情")
    private String notes;

    @ApiModelProperty(value = "品牌名称")
    private String brandName;

    @ApiModelProperty(value = "店铺名称")
    private String storeName;

    @ApiModelProperty(value = "店铺等级")
    private Integer storeLevel;

    @ApiModelProperty(value = "商品类型 0现货、1预售")
    private Integer goodsType;

    @ApiModelProperty(value = "店铺id")
    private Long shopId;

    @ApiModelProperty(value = "可售区域名称")
    private String availableAreaName;

    @ApiModelProperty(value = "发货区域名称")
    private String sendAreaName;

    @ApiModelProperty(value = "预售产品首款比例，%")
    private Integer firstBalance;

    @ApiModelProperty(value = "预售产品尾款比例，%")
    private Integer tailBalance;

    @ApiModelProperty(value = "是否询价，0否，1是")
    private Integer isInquiry;

    @ApiModelProperty(value = "卖家地址id")
    private Long sellerAddressId;

    @ApiModelProperty(value = "商品默认价格")
    private String price;

    @ApiModelProperty(value = "商品编码")
    private String commodityNumber;

    @ApiModelProperty(value = "类目id")
    private Long categoryId;

    @ApiModelProperty(value = "销量人气")
    private Integer salesPopularity;

    @ApiModelProperty(value = "评价数量")
    private Integer numberOfEvaluations;

    @ApiModelProperty(value = "收藏人气")
    private Integer favoritePopularity;

    @ApiModelProperty(value = "产品规格说明书")
    private String productSpecificationUrl;

    @ApiModelProperty(value = "产品检验合格证书")
    private String productCertificateUrls;

    @ApiModelProperty(value = "同类商品推荐")
    private List<CommoditySimilarVO> recommendSimilarProducts;

    @ApiModelProperty(value = "分类规格信息")
    private List<SpecificationCategoryVO> categorySpecInformation;

    @ApiModelProperty(value = "商品套餐")
    private List<CommodityComboRelationVO> commodityPackage;

    @ApiModelProperty(value = "卖家imId")
    private Long imId;

    @ApiModelProperty(value = "最低价")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal minPrice;

    @ApiModelProperty(value = "商品所有库存")
    private Integer allInventoryNumber;

    @ApiModelProperty(value = "品牌id")
    private Long brandId;

    @ApiModelProperty(value = "店铺是否冻结,0正常,1冻结")
    private Integer shopIsClose;

    @ApiModelProperty(value = "备货时间")
    private Integer stockDays;

    @ApiModelProperty(value = "二级域名")
    private String domain;

    @ApiModelProperty(value = "京东标识")
    private Integer jdFlag;
}
